package net.expectx.gw.service;




import net.expectx.common.base.BaseResult;

import java.util.List;
import java.util.Map;

/**
 * @author  lj
 * 2018-05-17
 * @param
 */
public interface BaseService<Record> {

	/**
     * 插入记录有效字段
     * @param record
     * @return
     */
    BaseResult insertSelective(Record record);

    /**
     * 根据主键删除记录
     * @param id
     * @return
     */
    int deleteByPrimaryKey(Object id);

    /**
     * 根据条件删除
     * @param strWhere 条件
     * @return
     */
    int deleteByStrWhere(String strWhere);

    /**
     * 根据主键更新有效记录
     * @param record
     * @return
     */
    BaseResult updateByPrimaryKeySelective(Record record);

    /**
     * 根据主键查询记录
     * @param id
     * @return
     */
    Record selectByPrimaryKey(Object id);

    /**
     * 条件查询
     *
     * @param strWhere 条件  排序
     * @param strOrder
     * @return
     */
    List<Record> findByAttr(String strWhere, String strOrder);

    /**
     * 根据条件分页
     *
     * @param pageIndex 当前页
     * @param pageSize  每页条数
     * @param strWhere  条件
     * @param strOrder  排序
     * @return
     */
    List<Record> findByPage(Integer pageIndex, Integer pageSize, String strWhere, String strOrder);

    /**
     * 获得数据条数
     *
     * @param strWhere 条件参数
     * @return
     */
    int count(String strWhere);

    /**
     * 逻辑删除
     * @param isDeleted   0：否 1：是
     * @param strWhere
     * @return
     */
    int logicDeletion(Byte isDeleted, String strWhere);
}
